using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace Spinning.Spinning.Interface
{
    public interface IEntity
    {
        List<IEntity> Children { get; }
        void OnLoad();
        Matrix Projection { get; }
        Matrix GetProjectionMatrix();
        Matrix UnProjection { get; }
        Matrix GetUnProjectionMatrix();
        void OnDraw(SpriteBatch spriteBatch, GameTime gameTime);
        void OnUpdate(GameTime gameTime);
        void Attach(IEntity entity);
        void Detach(IEntity entity);
        Vector2 Position { get; set; }
        Vector2 Origin { get; set; }
        Vector2 Scale { get; set; }
        float Rotation { get; set; }
        Color Color { get; set; }
        float Alpha { get; set; }
        float ZIndex { get; set; }
        IEntity Parent { get; set; }
        bool Visable { get; set; }
        bool Static { get; set; }
    }
}
